package com.own.component.common.util;

import org.apache.commons.lang3.StringUtils;

/**
 * NumberUtil
 *
 * @author chenxueli
 * @date 2020/9/22 10:45
 */
public final class NumberUtil {

    /**
     * 验证数字的上下限
     *
     * @param number 数字
     * @param floor  下限
     * @param ceil   上限
     * @return 结果值
     */
    public static int checkNumberLimit(int number, int floor, int ceil) {
        if (number > ceil) {
            return ceil;
        }
        return Math.max(number, floor);
    }

    /**
     * 前补全位数
     *
     * @param content   原内容
     * @param maxLength 目标长度
     * @return 最终数据
     */
    public static String completeDigitsStart(Object content, final int maxLength) {
        return completeDigitsStart(content, maxLength, null);
    }

    /**
     * 前补全位数
     *
     * @param content   原内容
     * @param maxLength 目标长度
     * @param filler    填充内容
     * @return 最终数据
     */
    public static String completeDigitsStart(Object content, final int maxLength, String filler) {
        if (StringUtils.isEmpty(filler)) {
            filler = "0";
        }
        return StringUtils.leftPad(content.toString(), maxLength, filler);
    }

    /**
     * 后补全位数
     *
     * @param content   原内容
     * @param maxLength 目标长度
     * @return 最终数据
     */
    public static String completeDigitsEnd(Object content, final int maxLength) {
        return completeDigitsEnd(content, maxLength, null);
    }

    /**
     * 后补全位数
     *
     * @param content   原内容
     * @param maxLength 目标长度
     * @param filler    填充内容
     * @return 最终数据
     */
    public static String completeDigitsEnd(Object content, final int maxLength, String filler) {
        if (StringUtils.isEmpty(filler)) {
            filler = "0";
        }
        return StringUtils.rightPad(content.toString(), maxLength, filler);
    }

}
